//字符串是否包含某个字符
export function validstr(arrstr,value) {
	if (arrstr.indexOf(value) == -1){
		return false
	}else {
		return true
	}
}
export function timestampToTemplatethoer(timestamp,type) {
	
	var date = new Date(timestamp); // 时间戳转换成Date对象
	    var year = date.getFullYear(); // 获取年份
	    var month = date.getMonth() + 1; // 获取月份，需要+1因为月份从0开始
	    var day = date.getDate(); // 获取日
	    var hours = date.getHours(); // 获取小时
	    var minutes = date.getMinutes(); // 获取分钟
	    var seconds = date.getSeconds(); // 获取秒钟
	 
	    // 格式化月份、日期、小时、分钟和秒
	    month = month < 10 ? '0' + month : month;
	    day = day < 10 ? '0' + day : day;
	    hours = hours < 10 ? '0' + hours : hours;
	    minutes = minutes < 10 ? '0' + minutes : minutes;
	    seconds = seconds < 10 ? '0' + seconds : seconds;
		let dates = '';
		if(type == 1){
			dates = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
		}else if(type == 2){
			dates = hours + ':' + minutes + ':' + seconds;
		}else{
			dates = year + '-' + month + '-' + day;
		}
	    // 组合成日期时间字符串
		return dates
}
// export function timestampToTemplatethoer(timestamp,type) {
// 	var date = new Date(timestamp); // 如果timestamp是数值，则直接作为Date的参数；如果是字符串，需要先转为数值：parseInt(timestamp)
// 	var year = date.getUTCFullYear(); // 获取年份
// 	var month = (date.getUTCMonth() + 1).toString().padStart(2, '0'); // 获取月份，+1因为月份是从0开始的
// 	var day = date.getUTCDate().toString().padStart(2, '0'); // 获取日
// 	var hours = date.getUTCHours().toString().padStart(2, '0'); // 获取小时
// 	var minutes = date.getUTCMinutes().toString().padStart(2, '0'); // 获取分钟
// 	var seconds = date.getUTCSeconds().toString().padStart(2, '0'); // 获取秒钟
	 
	    
// 	let dates = '';
// 	if(type == 1){
// 		dates = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
// 	}else{
// 		dates = `${year}-${month}-${day}`;
// 	}
// 	return dates
	
// }
export function timestampToTemplate(timestamp,type) {
	var date = new Date(timestamp * 1000);  // 参数需要毫秒数，所以这里将秒数乘于 1000
	let Y = date.getFullYear() + '-';
	let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
	let D = date.getDate() + ' ';
	let h = date.getHours() + ':';
	let m = date.getMinutes() + ':';
	let s = date.getSeconds();
	// document.write(Y+M+D+h+m+s);
	let dates = '';
	if(type == 1){
		dates = Y+M+D+h+m+s;
	}else{
		dates = Y+M+D;
	}
	return dates
	
  // const date = new Date(timestamp * 1000);
  // const {getFullYear, getMonth, getDate, getHours, getMinutes, getSeconds} = date;
  // return `${getFullYear()}-${getMonth()+1}-${getDate()} ${getHours()}:${getMinutes()}:${getSeconds()}`;
}
//字符创操作 一定长度增加换行
export function subStr (str,num){
        // 设置变量存储返回值
        let newstr = "";
		let returnarr =[]
      // 如果长度超过5，就要截取插入字符
        if(str.length > num) {
            // 第一次截取
            newstr = str.slice(0, num) + "==";
            // 闭包再次调用，如果截取后的字段长度依然超过num，再次调用，如果没有直接返回当前值
            return newstr + subStr(str.slice(num),num);
        } else {
            // 直接返回当前值
            return str
        }
		
    }
//手机号校验
export function validPhone(phone) {
	if (
		!/^((13[0-9])|(14[5-9])|(15([0-3]|[5-9]))|(16[6-7])|(17[1-8])|(18[0-9])|(19[1|3])|(19[5|6])|(19[8|9]))\d{8}$/
		.test(
			phone
		)
	) {
		return false
	} else {
		return true
	}
}

//固定电话+手机号校验（固定电话输入必须用‘-’隔间例如010-22222222）
export function validTelPhone(value) {
	let reg = /^((0\d{2,3}-\d{7,8})|(1[3456789]\d{9}))$/
	return reg.test(value)
}

//邮箱校验
export function validEmail(email) {
	const reg =
		/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
	return reg.test(email)
}



/** 8-16位必须包含数字、字母、特殊符号
 *
 */
export function validPassword(password) {
	// eslint-disable-next-line no-useless-escape
	const reg = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>,.]).{6,16}/
	return reg.test(password)
}

//护照校验
export function validPassPort (code) {
  if (!code || !/^1[45][0-9]{7}$|([P|p|S|s]\d{7}$)|([S|s|G|g]\d{8}$)|([Gg|Tt|Ss|Ll|Qq|Dd|Aa|Ff]\d{8}$)|([H|h|M|m]\d{8,10})$/.test(code)) {
    return false
  }
  return true
}

//身份证校验
export  function validIdCard (idCard) {
  // 15位和18位身份证号码的正则表达式
  var regIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
  // 如果通过该验证，说明身份证格式正确，但准确性还需计算
  if (regIdCard.test(idCard)) {
    if (idCard.length === 18) {
      // eslint-disable-next-line no-array-constructor
      var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)// 将前17位加权因子保存在数组里
      // eslint-disable-next-line no-array-constructor
      var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2)// 这是除以11后，可能产生的11位余数、验证码，也保存成数组
      var idCardWiSum = 0// 用来保存前17位各自乖以加权因子后的总和
      for (var i = 0; i < 17; i++) {
        idCardWiSum += idCard.substring(i, i + 1) * idCardWi[i]
      }
      var idCardMod = idCardWiSum % 11// 计算出校验码所在数组的位置
      var idCardLast = idCard.substring(17)// 得到最后一位身份证号码
      // 如果等于2，则说明校验码是10，身份证号码最后一位应该是X
      if (idCardMod === 2) {
        // eslint-disable-next-line eqeqeq
        if (idCardLast == 'X' || idCardLast == 'x') {
          return true
        } else {
          return false
        }
      } else {
        // 用计算出的验证码与最后一位身份证号码匹配，如果一致，说明通过，否则是无效的身份证号码
        // eslint-disable-next-line eqeqeq
        if (idCardLast == idCardY[idCardMod]) {
          return true
        } else {
          return false
        }
      }
    }
  } else {
    return false
  }
}

//15位营业执照注册号+18位社会信用码校验
export function validSocialCreditCode (code) {
  if (code.length !== 18 && code.length !== 15) {
    return false
  }
  // 十八位新码
  if (code.length === 18) {
    var regex = /^([159Y]{1})([1239]{1})([0-9ABCDEFGHJKLMNPQRTUWXY]{6})([0-9ABCDEFGHJKLMNPQRTUWXY]{9})([0-90-9ABCDEFGHJKLMNPQRTUWXY])$/
    if (!regex.test(code)) {
      return false
    }
    var str = '0123456789ABCDEFGHJKLMNPQRTUWXY'
    var ws = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28]
    // eslint-disable-next-line no-array-constructor
    var codes = new Array()
    codes[0] = code.substr(0, code.length - 1)
    codes[1] = code.substr(code.length - 1, code.length)
    var sum = 0
    for (var i = 0; i < 17; i++) {
      sum += str.indexOf(codes[0].charAt(i)) * ws[i]
    }
    var c18 = 31 - (sum % 31)
    if (c18 === 31) {
      c18 = 'Y'
    } else if (c18 === 30) {
      c18 = '0'
    }
    if (str.charAt(c18) !== codes[1].charAt(0)) {
      return false
    }
    return true
  // eslint-disable-next-line brace-style
  }
  // 十五位编码
  else {
    var ret = false
    // eslint-disable-next-line no-redeclare
    var sum = 0
    var s = []
    var p = []
    var a = []
    var m = 10
    p[0] = m
    // eslint-disable-next-line no-redeclare
    for (var i = 0; i < code.length; i++) {
      a[i] = parseInt(code.substring(i, i + 1), m)
      s[i] = (p[i] % (m + 1)) + a[i]
      if (s[i] % m === 0) {
        p[i + 1] = 10 * 2
      } else {
        p[i + 1] = (s[i] % m) * 2
      }
    }
 
    if ((s[14] % m) === 1) {
      ret = true
    } else {
      ret = false
    }
    return ret
  }
}